#ifndef MOVE_H
#define MOVE_H

class Move {

 public:
  /*
    Default constructor, just move
   */
  Move(int, int, int, int);

  /*
    Special move constructor, move and capture figure (en-passant)
   */
  Move(int, int, int, int, int, int);

  /*
    Special move constructor, move and move extra figure (castling)
   */
  Move(int, int, int, int, int, int, int, int);
  bool operator== ( Move& );
  int getOldX() { return oldX; };
  int getOldY() { return oldY; };
  int getNewX() { return newX; };
  int getNewY() { return newY; };

  Move*   getExtraMove() { return extraMove; };
  QPoint* getDeleteFigure() { return deleteFigure; };
  ~Move();

 private:
  Move* extraMove;
  QPoint* deleteFigure;
  int oldX;
  int oldY;
  int newX;
  int newY;
};

#endif
